2 research outputs found

    Advanced Analysis of Control Flow in Malware

    Get PDF
    Tato bakalářská práce se zabývá nástrojem pro zpětný překlad strojového kódu na vyšší programovací jazyk. Tento nástroj je vyvíjen v rámci projektu Lissom. Cílem práce je zavedení pokročilé analýzy toku řízení. Zaměřuje se především na zpětnou rekonstrukci příkazu switch a volání funkce přes ukazatel. Dané problémy jsou v práci vyřešeny zavedením nových metod analýzy toku řízení. Jsou zde podrobně rozebrány a je navrženo řešení, které je implementováno a otestováno. Vytvořené řešení umožňuje úspěšně zpětně rekonstruovat příkaz switch ve většině případů výskytů, a také volání funkce přes ukazatel v jednodušších případech výskytů. Přínosem této práce je vylepšení nástroje pro zpětný překlad, kdy jsou zpětně překládány programy, které zmíněné pokročilé konstrukce využívají.This thesis deals with the tool for decompilation of binary code to high-level programming language. This tool is being developed within the project Lissom. The aim of this work is the implementation of advanced analysis in control flow. This work is focused on reconstruction the switch statement and calling function through pointer. These problems are solved by adding new methods to control flow analysis. They are described in detail and solution is proposed, implemented and tested. Created solution allows reconstruct the switch statement in most cases and calling function through pointer in simpler cases. The contribution of this work is an improvement of the tool for decompilation in case that decompiled programs use these advanced structures.

    Code Structuring in Decompiler Back-End

    Get PDF
    Tato diplomová práce se zabývá nástrojem pro zpětný překlad nízkoúrovňového strojového kódu do vyšší formy reprezentace, který je vyvíjen společností AVG Technologies. Cílem této práce je navrhnout a implementovat metodu strukturování vnitřní reprezentace v zadní části zpětného překladače, která se bude snažit eliminovat skoky s využitím podmíněných příkazů a cyklů. Je navržena metoda pro strukturování, která pracuje na základě opakovaného procházení grafu toku řízení a vyhledávání předdefinovaných vzorů. Ve všech případech však není možné strukturovat kód pouze s využitím podmíněných příkazů a cyklů. V takových případech je použito strukturování pomocí příkazu goto. Vytvořené řešení je srovnáno s původním řešením ve zpětném překladači. Dle výsledků je řešení rychlejší, lépe otestované, ale ve větším množství případů generuje nevalidní kód. Z hlediska strukturování jsou výsledky rozdílné a někdy je kód strukturován lépe, avšak někdy hůře.This thesis deals with a decompilation tool which converts low-level binary code to a high-level representation. This tool is being developed by AVG Technologies. The aim of this work is to design and implement a method for code structuring in the decompiler back-end. The designed method works by traversing the control-flow graph with matching of predefined patterns. It is not always possible to structure code using conditional statements and loops. Sometimes also goto statements must be used. The implemented solution is compared with the original solution in the decompiler. According to the results the new solution is faster, better tested, but in greater number of test cases generates invalid code. From the viewpoint of structuring the results are different and sometimes the code is structured better, but sometimes worse.
    corecore